#include <linux/module.h>
#include <linux/init.h>
#include <asm/atomic.h>
#include <linux/kthread.h>
#include <linux/delay.h>

#define err(msg) printk(KERN_ALERT "%s\n", msg)
struct kmem_cache *cachep = NULL;
struct yourstruct {
	int hoho;
	char hoh;
};
struct yourstruct *bodyp = NULL;

static int maininit(void)
{
	cachep = kmem_cache_create("fown_cache", sizeof(struct yourstruct), 0, SLAB_HWCACHE_ALIGN, NULL);
	bodyp = (struct yourstruct *) kmem_cache_alloc(cachep, GFP_ATOMIC & ~__GFP_DMA);
	return 0;
}

static void mainexit(void)
{
	kmem_cache_free(cachep, bodyp);
	if (cachep)
	      kmem_cache_destroy(cachep);
}

module_init(maininit);
module_exit(mainexit);

MODULE_LICENSE("GPL");
